package eval.vm;

/**
 * Create a new virtual machine
 * 
 * @author Amit Peled   <amit.kapina@gmail.com>
 * @author Igal Kaufman <igal.kaufman@gmail.com>
 * */
public interface IVMFactory {

	/**
	 * create New Virtual Machine
	 * 
	 * @param lifeTime number of ticks
	 * @return the new VM
	 */
	public VirtualMachine createNewVirtualMachine(int lifeTime);

	/**
	 * create specific Virtual Machine
	 * 
	 * @param vmType VM type to create
	 * @param lifeTime number of ticks
	 * @return the new VM
	 */
	public VirtualMachine createNewVirtualMachine(VMConfigurationEnum vmType,int lifeTime);

}